﻿#define _CRT_SECURE_NO_WARNINGS 1
给你一个整数 n，请你判断该整数是否是 2 的幂次方。如果是，返回 true ；否则，返回 false 。

如果存在一个整数 x 使得 n == 2x ，则认为 n 是 2 的幂次方。



示例 1：

输入：n = 1
输出：true
解释：20 = 1
示例 2：

输入：n = 16
输出：true
解释：24 = 16
示例 3：

输入：n = 3
输出：false
示例 4：

输入：n = 4
输出：true
示例 5：

输入：n = 5
输出：false


提示：

- 231 <= n <= 231 - 1


bool isPowerOfTwo(int n) {
    int i = 0;
    int count = 0;
    if (n <= 0)
        return false;
    for (i = 0; i < 31; i++)//符号位不用管，因为上面已经做出了判断
    {
        if ((n >> i) & 1)
        {
            count++;
        }
    }
    if (count == 1)
        return true;
    else
        return false;
}
//不使用循环
bool isPowerOfTwo(int n) {
    if (n <= 0)
        return false;
    if (n & n - 1)
    {
        return false;
    }
    else
    {
        return true;
    }
}